package org.microdream.easy.deploy.po;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.util.List;
import java.util.Map;

//缓存类
public class CachePo {

    //字典缓存，key(type+value)-value(name)
    public static Map<String,String> dictionarySingleMap;

    //字典缓存，key(type)-value(字典集合)
    public static Map<String, List<DDictionary>> dictionaryListMap;
    
    /**
     * 查询字典名称方法
     * @param value 字典值
     * @return
     */
    public static String getName(String type, String value) {
    	return dictionarySingleMap.get(type + value);
    }
    
    /**
     * 根据字典类型查询字典集合
     * @param type 字典类型
     * @return
     */
    public static List<DDictionary> getValues(String type) {
    	return dictionaryListMap.get(type);
    }

    /**
     * 根据字典类型查询字典键值对
     * @param type 字典类型
     * @param keyName 返回键值对的key名称，默认是key
     * @param valueName 返回键值对的value名称，默认是value
     * @return
     */
    public static JSONArray getValues(String type,String keyName,String valueName) {
        JSONArray jsonArray = new JSONArray();
        List<DDictionary> dDictionaries = dictionaryListMap.get(type);
        dDictionaries.forEach(dDictionary -> {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put(StringUtils.isNotEmpty(keyName)?keyName:"key",dDictionary.getDicValue());
            jsonObject.put(StringUtils.isNotEmpty(valueName)?valueName:"value",dDictionary.getDicName());
            jsonArray.add(jsonObject);
        });
        return jsonArray;
    }
}
